package main

import (
	"fmt"
	"math"
)

func main() {

	y := math.Floor(156) / math.Floor(20)
	fmt.Println(math.Ceil(y))

	x := 1.6
	fmt.Println(math.Ceil(x))  // 2
	fmt.Println(math.Floor(x)) // 1
	// ch := generateNatural() // 自然序列 2,3,4,5...
	// for i := 0; i < 100; i++ {
	// 	prime := <-ch
	// 	fmt.Printf("%v: %v\n", i+1, prime)
	// 	ch = primerFilter(ch, prime) // 基于新的素数构造的过滤器
	// }
}

func generateNatural() chan int {
	ch := make(chan int)
	go func() {
		for i := 2; ; i++ {
			ch <- i
		}
	}()
	return ch
}

// 管道过滤器: 删除能被素数整除的数
func primerFilter(in <-chan int, prime int) chan int {
	out := make(chan int)
	go func() {
		for {
			if i := <-in; i%prime != 0 {
				fmt.Println("----", i, prime)
				out <- i
			}
		}
	}()

	return out
}
